using System;
using System.Collections.Generic;
using System.Text;

namespace ca.metaobjects.csogateway
{
	/// <summary>
	/// <para>
	/// Specifies that the value returned by the equivalent property in the cso-generated type can be used to produce hash codes
	/// for instances of that cso-generated type.
	/// When a cso-ready class or a cso-ready struct has one or more of its public properties decorated with this attribute,
	/// the cso-generated type implements the interface CsoGateway.Collections.ICsoHashProvider and an additional function
	/// is created: getCsoHashSource(). That function will returns an Array of the values of the properties that were decorated
	/// with the CsoHashSourceAttribute on the server side. The values in that Array are used by the CsoGateway.Collections.Hashing.Hash(object)
	/// to produce hashes for objects that implements CsoGateway.Collections.ICsoHashProvider.
	/// </para>
	/// 
	/// </summary>
	[AttributeUsage(AttributeTargets.Property)]
	public class CsoHashSourceAttribute : System.Attribute
	{
		/// <summary>
		/// Creates a new instance of CsoHashSourceAttribute
		/// </summary>
		public CsoHashSourceAttribute()
		{
		}
	}
}